Wireless internet product system

ABSTRACT

Low resource internet devices such as consumer electronics products connect to web service by means of a proxy method where the connected device does not need to maintain the expensive and fragile web service interface itself, but rather uses simple low level protocols to communicate through a gateway that executes software to translate a low level proprietary wireless protocol to a proprietary low level internet protocol that can pass through a firewall to proxy servers that translate the low level protocols thus presenting an interface that makes the internet device appear to have a full web service interface to enable communication between the internet devices and the web server.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims priority to U.S. patent application Ser. No.12/489,154 filed Jun. 22, 2009, and entitled “Wireless Internet ProductSystem”; which claims priority to U.S. Provisional Patent ApplicationNo. 61/074,484 filed Jun. 20, 2008, both of which are herebyincorporated by reference for all purposes.

BACKGROUND

1. Field of the Invention

Invention relates to networked communication systems, particularly tosystems enabling simple electronic devices having web serviceconnectivity.

2. Related Art

It is desirable to create a wireless internet system to connect productsthat can communicate with each other and web applications. The adoptionof these systems has been held back by the cost of the devicesthemselves to support internet protocols because current methods requirerobust and relatively expensive radio, memory and microprocessor systemsas compared to non-networked products. Adoption of internet connectedproducts have also been held back by the cost to support applicationservers that provide web or internet functionality for the devicebecause the product provider is burdened with back-end infrastructurecosts that increase the cost of the product. Inventions that reduce thecost of connected devices while maintaining their internet connectedfunctionality and inventions to improve the efficiency of the back-endinfrastructure to support connected products are needed improvements tothe current art.

SUMMARY

Electronic devices communicate through firewall connected through proxyand web application servers to internet network. Alternate embodimentsof electronic devices use gateway or dongle and personal computer (PC)to connect one or more internet products to firewall. A uniqueidentifier stored in each electronic devices or internet productscorresponds to and addresses each electronic devices or internetproducts throughout system. Program in electronic devices, gateway, orPC transfers unique identifier through firewall by internet messagesystem (IMS) protocol to proxy server software which detects electronicdevices. IMS protocol includes unique identifier. IMS packet length isshorter than corresponding web service protocol packet length. Programin proxy server has routing and translating programs which alternativelyare in IMS and Translation servers respectively. Routing program routesIMS packet based on stored mapping of unique identifier to internetprotocol (IP) address and port to one electronic devices or internetproducts or, through translating program, to web application server withinternet address using web service protocol. This enables internetaddress using web service protocol to access or communicate information,content, or commands to one electronic devices or internet products orenables one electronic devices or internet products to communicate toother electronic devices or internet products. In an alternateembodiment, application state or key value pair message associated withelectronic devices are stored by software in proxy server.

Gateway or dongle communicates to one or more internet products throughcompact radio protocol (CRP) through low power wireless circuits. CRPpacket length is shorter than corresponding IMS packet length. CRPpacket using unique identifier has fewer fields than corresponding IMSpacket. Software in gateway or PC translates CRP to and from IMSprotocol.

Firewall table entry timeout time which blocks IMS transfer from proxyserver to electronic devices or internet products is avoided byelectronic device or proxy server software which determinesapproximation short of timeout time and is used to send IMS packetperiodically to firewall preventing timeout and permitting communicationwith reduced system overhead.

In alternative embodiments; gateway or PC stores IMS or CRP packet sentuntil one or more internet products periodically wake up from low powersleep mode to receive packet to reduce power consumption in internetproducts, or alternatively, low power wireless circuit determinesreduced signal strength condition which initiates resynchronization scanto gateway, or alternatively, firewall is with network addresstranslation.

In alternative embodiments electronic devices or internet products maybe; thermostat with ability of storing control setting, animatronic toywith motor causing motion or character gesturing and control circuitwith ability to actuate motor, toy with ability to make sound or playsound files and ability to receive sound or sound files from internetaddress using web service protocol, medical sensor with ability ofsending data, and touch screen display drawing pad with ability ofsending data. All these abilities are responsive to internet addressusing web service protocol and touch screen display drawing pad iscapable of sending data to another touch screen display drawing pad.Alternative embodiments in combination with above embodiments ofanimatronic toy use sensor with ability of sending sensor dataresponsive to motion or environment from toy to internet address webservice protocol or to other electronic devices with ability to beresponsive to animatronic toy.

Using more compact packet protocols than web service protocols withininternet product system enables simpler and cheaper hardware throughoutsystem and resulting operational efficiencies enable many more internetproducts to be connected than prior art techniques while also reducingcost of server infrastructure. Translating back to web service protocolat web application server also provides standardized web serviceinterface helping application developers bring applications online moreefficiently. Using unique identifier addressing enables efficientdetection and access of electronic devices or internet products thrufirewalls otherwise difficult to achieve using prior art IP basedaddressing. Embodiments described above enable many internet productconnected applications that would otherwise be too expensive using priorart techniques.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a simplified system diagram showing the wireless internetproduct system according to an embodiment of the present invention.

FIG. 2 is a functional diagram illustrating the scan frame according toan embodiment of the present invention.

FIG. 3 is a functional diagram illustrating the poll frame according toan embodiment of the present invention.

FIG. 4 is a functional diagram illustrating the data frame according toan embodiment of the present invention.

FIG. 5 is a functional diagram illustrating the procedure of theinternet product scanning to find gateways according to an embodiment ofthe present invention.

FIG. 6 is a functional diagram illustrating the procedure of pollingwhen the internet product is in sleep mode and connected to the gatewayaccording to an embodiment of the present invention.

FIG. 7 is a functional diagram illustrating the procedure of polling andscanning when the internet product is in sleep mode and not connected tothe gateway according to an embodiment of the present invention.

FIG. 8 is a functional diagram illustrating the procedure of data frametransmitting with retries during normal operation according to anembodiment of the present invention.

FIG. 9 is a functional diagram illustrating the procedure of poll anddata frame transmitting when the poll frame is held during normaloperation according to an embodiment of the present invention.

FIG. 10 is a functional diagram illustrating the procedure of scan frametransmitting when the gateway is powered on and selects a random channelaccording to an embodiment of the present invention.

FIG. 11 is a functional diagram illustrating the procedure of data andpoll frame transmitting during normal gateway operation according to anembodiment of the present invention.

FIG. 12 is a functional diagram illustrating the procedure of data andpoll frame transmitting when a second internet product poll is delayedby a first internet product poll frame during normal gateway operationaccording to an embodiment of the present invention.

FIG. 13 is a functional diagram illustrating the IMS on UDP on IP packetaccording to an embodiment of the present invention.

FIG. 14 is an operational flowchart illustrating process steps performedby software functions in accordance with detecting and accessingfunctions in an internet product system according to an embodiment ofthe present invention.

DETAILED DESCRIPTION

One embodiment of the invention is an internet product system orsometimes called the wireless internet product system 100 as shown inthe simplified system diagram FIG. 1. The system consists of a one ormore internet products 102 which are battery or wall powered devicesthat send and receive information through wireless radios through a oneor more gateways 104. “Low-power wireless” or simply “wireless” refersto 802.11a/b/or g/ standard and other proprietary and standardshort-range wireless solutions capable of transferring digital data andoperating in unlicensed spectrum, for example 433 MHz, 928 MHz, 868 MHz,2.4 GHz bands and others (examples including WI-FI®, BLUETOOTH®,WI-BREE®, ZIGBEE®, ZWAVE®, and others). The one or more internetproducts have a low-power radio transceiver and a microcontroller withdata storage, for example flash or static random access (SRAM) memory.One or more internet products 102, which may simply be called theinternet product, connects to one of one or more gateway 104, which maysimply be called the gateway, using a compact radio protocol (CRP) 106.The CRP uses a star topology where one or more internet productscommunicate with the same gateway.

Gateway 104 also has a low-power radio transceiver and a microcontrollerwith flash and SRAM memory. The gateway contains software to translatethe CRP 106 packets to and from an Internet Message System (IMS)protocol 108, 114, and 120. The IMS packets are sent over internetprotocol (IP) through a network address translation (NAT) firewall 110to an IMS server 112. NAT firewall 110 may simply be called a firewallor NAT but is understood to be any device that blocks unauthorizedpackets from flowing to the gateway from any servers based on apredetermined rule set or providing the network address translationfunction.

The gateway exists in one of two configurations. The gateway may connectvia a local area network (LAN) connection 114 (such as ETHERNET®)directly to the home or commercial network address translation NATfirewall 110 or router shown in FIG. 1, or it may connect via auniversal serial bus (USB) connection 116 to a personal computer (PC)118, which in turn is connected via local area network connection 120(such as ETHERNET®) to the home or commercial network NAT Firewall 110or router. The gateway may have both USB and ETHERNET® interface toallow the user to choose which method to use to give the gatewayinternet connectivity. In the case of the USB-connected gateway (104,116, and 118), the translation software runs as a background PC 118application program that sends and receives compact radio protocol CRP106 and IMS protocol 120 information. Both the directETHERNET®-connected 114 gateway and USB-connected 116 gateway and PCcombination will be referred to in this document simply as the “gateway104 (or 104, 116, and 118)”. As described in more detail later, oneembodiment of the USB-connected 116 gateway uses a USB dongle (not shownin FIG. 1) in place of gateway 104 where the USB dongle (as 104)contains the wireless radio as described above.

IMS server 112 routes IMS over user datagram protocol (UDP) over IPpackets to and from one or more internet products 102 and theirdestinations. There are two possible destinations. The one or moreinternet products may communicate with another one of one or moreinternet products directly, or it may communicate with a web applicationserver 122. An example of the web application server in this case wouldbe a server that provides a web interface that both shows informationsent from the one or more internet products and sends information,content or commands to the internet product.

In the case where the internet product is communicating with anotherinternet product directly, IMS server 112 passes the IMS packet to thecorrect one or more internet products 102 based on a device identifier(ID) found in the IMS packet. The packet is routed directly by the IMSserver to the target product's NAT firewall 110 and gateway 104 (or 104,116, and 118). Note that if an internet product is behind an NATfirewall that does not allow UDP traffic, IMS server 112 can usetransmission control protocol (TCP) instead of UDP, although TCP is lessefficient.

Many of the one or more internet products are deployed in networksbehind NAT firewall 110 devices. These one or more internet products canbe reachable from IMS server 112 any time they are in operation so thata message sent from another internet product or initiated from a webapplication can reach the internet product. However the NAT firewallprevents an outside IP address from contacting an internal IP addressunless the contact was initiated by the internal IP address inside theNAT firewall. Those skilled in the art are familiar with a table entryin the NAT firewall that associates an external IP address and port withan internal IP address and port and permits packets to be passed fromthe external address to the internal address as part of an activecommunication session. This active communication session will time outon most NAT firewall equipment after a pre-set amount of time. Thisembodiment of the invention can overcome this NAT firewall restrictionby having the internal device send regular, dummy IP packets initiatedeither from gateway 104 (or 104, 116, and 118) component or from one ormore internet products 102 at a frequency higher than the table entrytimeout frequency in the NAT firewall. In doing so, the sender ensuresthat there will always be a valid entry in the NAT firewall table topermit communication from the IMS server to the gateway. When theinternet product connects to the IMS server and it was previouslydisconnected, the new connection to the IMS server will be initiated bythe internet product or the gateway in order to be passed by the NATfirewall.

The NAT firewall table connection state may be automatically refreshedby gateway 104 (or 104, 116, and 118) upon any data packet transmissionbetween one or more internet products 102 and gateway 104 (or 104, 116,and 118) (described below). Alternatively, the internet product mayrefresh state via a scanning operation (also described below). Thisrefresh operation may be performed at any energy-efficient time selectedby the internet product, and is typically coordinated with other deviceoperations to minimize power state transition energy.

In the case where one or more internet products 102 are communicatingwith web application server 122, IMS server 112 passes the IMS packet tothe web application server through a translation server 124. Thetranslation server translates IMS over IP 126 to and from a standard webservice protocol 128 such as extensible markup language (XML) overhypertext transfer protocol (HTTP) by providing a web serviceapplication programming interface (API) to web application server 122.This translation allows standard web application servers to communicateseamlessly with the entire internet product system using a standard webservice protocol. “Web service” refers to machine-to-machinecommunications using XML over HTTP. Translation server 124 can alsoprovide a generic way to store the states of the various one or moreinternet products 102 so the state of the product can be retrieved fromthe translation server rather than the internet product to increaseefficiency.

Translation server 124 advantages over the prior art are now described.By translating a standard web service protocol 128 to IMS over IP 126,translation server 124 both provides a standard web service API to webapplication server 122 and also communicates with IMS server 112 usingthe more efficient IMS packet structure. This topology has severalbenefits. First, the XML format for the web service interface, althoughstandard for web application servers, is much less efficient than IMSover IP. Translating packets as soon as they are received by thetranslation server to the more compact IMS format 108, 114, 120, and 126saves processor, memory, and bandwidth resources throughout the systemas compared to passing data in XML format to other servers and/or downto one or more internet products 102. Secondly, by using the IMS packetformat to communicate from the translation server to the IMS server, theIMS server can be simpler and therefore more efficient than a standardserver such as a web server, since communication on both sides of IMSserver 112 uses the same high-efficiency IMS over IP 126 and 108protocol.

In addition, translation server 124 defines a standard interface toaccess internet-connected products in both representational statetransfer (REST), simple object access protocol (SOAP) or other webservice formats and provides a generic way to store the states of one ormore internet products 102. Internet product state storage can beimplemented at the translation server in two ways. First, one or moreinternet products 102 can send an application state to translationserver 124 for storage and web application server 122 can retrieve eachnamed property from the translation server. In this method thetranslation server acts as a cache for the internet product. The secondmore generic way to implement storage at translation server 124 is tohave the translation server store a list of key value pair messages sentfrom one or more internet products 102 to the web application. Webapplication server 122 can then retrieve all the stored key value pairmessages on translation server 124 or choose to retrieve only a subsetof the messages based on their key. It will dramatically reduce the costof development of the related web applications because a designer needsto understand only the web service API for communicating with one ormore internet products 102 and not any of the details of the IMS or CRPprotocols that they use to communicate.

CRP 106 advantages over the prior art are now described. Small datasizes are common for one or more internet products 102 on low-powerwireless networks to facilitate less capable and therefore lessexpensive radio and packet processing hardware. The overhead of UDP orTCP normally imposed by an IP-based protocol is not needed by hardwareof this type and creates and unnecessary inefficiency. The CRP 106 usesfewer fields and smaller headers than UDP/IP or TCP/IP, and the maximumpacket length for CRP 106 is shorter than that of UDP or TCP. As aresult, the CRP leads to higher efficiency in transferring user payloaddata for hardware that does not require a higher-level protocol. Forlow-power wireless networks, this added efficiency is an advantage.

IMS protocol advantages over the prior art are now described. One of thefeatures of IMS protocol 108, 114, 120, and 126 is that it is close to adirect mapping of CRP 106 to a simple format that can be sent over an IPnetwork. The IMS protocol follows the size restrictions and formats ofthe CRP even though UDP or TCP would ordinarily not need to follow suchrestrictions. Limiting use of UDP or TCP packets to the subset IMSprotocol goes against the current teaching in the art, as the packetsare smaller than would be optimal for operation on an IP-only network.However the use of IMS protocol 108, 114, 120, and 126, while notoptimal for an IP-only network, makes the translation by gateway 104 (or104, 116, and 118) to and from a CRP 106 packet in an IMS-based network,much simpler. For example, the IMS protocol restricts packet size suchthat there are no packets that are too large to be supported by the CRP.It thereby ensures that no packets need be broken up into smallerpackets when translated by the gateway to the low-power radio network,reducing the complexity and therefore the cost of the gateway.

Keeping the IMS packet structure close to the CRP packet structure alsohas the benefit of making it easier to have compatibility between theEthernet-connected 114 gateways and gateways that connect to a PC via aserial connection such as USB connection 116, since the complexity ofthe gateway translations are greatly simplified. A less complex gatewayis easier and less expensive to implement on limited embedded hardware.

A key feature of IMS protocol 108, 114, 120, and 126 is the use of aconnectionless protocol such as UDP for a majority of communicationsbetween one or more internet products 102 and IMS server 112. For atraditional server such as Web Server, both the TCP connection overheadand the need to retain state for typical communication transactionsconsumes memory and processor resources on the server reducing thenumber of internet products that can be connected to the serversimultaneously. Using the connectionless protocols in conjunction withthe design of transactions using the IMS protocol, allows the minimumstate for common transactions to be stored on the IMS server. Storinglittle state and using connectionless protocols such as UDP allows IMSserver 112 to process transactions for many more internet products thancan be processed by server architectures currently used in the art thatrely on connection-oriented protocols such as TCP. Using TCP wouldconsume more system resources such as threads, file descriptors, etc.For a traditional server such as web server, both the TCP connectionoverhead and the need to retain state for common transactions consumememory and processor resources on the server reducing the number ofinternet products that can be connected to the server simultaneously.Correspondingly, the IMS server may be designed with low-cost hardware,using comparatively little bandwidth, while serving many internetproducts simultaneously.

To improve the availability and balance the traffic load, IMS server 112is designed and implemented as a cluster server using distributed memorycache technologies. Considering the tradeoff between performance andguaranteed data replication, and also considering the cost-sensitivenature of the consumer electronics market, the data replication amongthe multiple cluster nodes is designed in a best effort fashion.Occasional out-of-synchronization of data among the server nodes in thecluster due to network failure can be resolved by automatic audit andresynchronization, or by a restart of one or more server nodes. Thedatabases used as a component of the IMS server, which contain thedescription of internet-connected products, are also entirely replicatedto multiple server nodes in the cluster. This eliminates the need forthe database replication server and expensive storage hardware and atsame time achieves good results in terms of data recovery.

To further simplify the recovery process, each main description dataentry of one or more internet products 102 is assigned to one primaryserver node. The database record in its primary server node will be themaster record of that entry. IMS server 112 routes all the updaterequests of the main description entries to their primary server node sothat the master record is always updated first and then replicated toother server nodes in the cluster. All databases in the cluster will berecovered automatically based on their master records when systemrestarts by using above technique. The databases can also be recoveredeasily with minimum manual intervention in major disk failure. It candramatically reduce the data recovery cost and time.

More efficient protocols save cost. Prior internet-connected products,including some that have used web service directly on the internetproduct, have used HTTP to communicate to send and receive data betweendevices and internet servers. This invention embodiment uses web serviceprotocol 128 to connect to web application server 122, but translatesthe connections to more efficient UDP IMS protocols 108, 114, 120, and126 for other communication points within the architecture. This has thebenefit of providing standard web application server interfaces whileeliminating the overhead that would be incurred if complicated http andxml protocols were used with one or more internet products 102 and coreIMS server 112. The overhead of HTTP and XML protocols would normallymake one or more internet products 102 more expensive because they wouldneed full TCP and HTTP and XML capability, requiring more SRAM, flashmemory, and a higher performance processor. This invention embodimentallows one or more internet products 102 to be less expensive. Theserver infrastructure to support one or more internet products that usedTCP UDP XML and or Web service would also be more expensive than thisembodiment of the invention as more data would need to be passed betweenthe internet product and the server. Additionally the server would needto maintain more state on each connected product, requiring more memoryand processing resources on the server, and thus reducing the number ofinternet products each server could support.

The following embodiment provides additional enhancements. Periodic NATfirewall table refresh operations by one or more internet products 102or gateway 104 (or 104, 116, and 118) introduce a certain amount ofcommunication overhead. Often, for a battery-powered internet product,packets sent down to the internet product will be stored in the gateway,and the internet product will periodically wake up from a low powersleep mode to query the gateway to see if there are any such packetsthat the gateway needs to transmit to the internet product. In oneembodiment, this periodic data can double as a NAT firewall refreshrequest, triggering a dummy IP packet to be sent from gateway 104 (or104, 116, and 118) to IMS server 112. This double use of a data querypacket from one or more internet products 102 to the gateway to triggerthe dummy IP packet to be sent from the gateway to the IMS server ismore efficient than handling the two functions separately. In addition,this technique makes the design of the gateway component simpler as itno longer needs to keep track of the state of one or more internetproducts that are active on the wireless network and must thereforemaintain regular dummy packet traffic to the IMS server to ensure theinternet product is reachable by the IMS server. The timers fordetermining when a dummy packet needs to be sent are in one or moreinternet products 102 and not in gateway 104 (or 104, 116, and 118) sothe gateway design can be simpler and therefore less expensive. A dummyIP packet or any other IMS packet is sent through NAT Firewall 110 toIMS server 112 to make sure the state in the NAT Firewall reflects thatthere is an active connection between the IMS server and the internetproduct such that IP packets from the IMS server sent to the internetproduct are not blocked by the NAT firewall because there is no currentstate in the NAT firewall associating and therefore permitting the IMSIP address to send IP packets to the internal IP address of the internetproduct's gateway.

A second enhancement is as follows. In one embodiment of the invention,IMS server 112, gateway 104 (or 104, 116, and 118), or one or moreinternet products 102 requests a succession of dummy packets to be sentfrom the gateway to the IMS server and, over time, increase the sendperiod between dummy packets. The IMS server will then attempt tocommunicate with the gateway or internet product at increasingly longerperiods of time after the send time of the last dummy packet. Eventuallywhen the IMS server sends an IP packet it does not receive a responsefrom the gateway or internet product because the IP packet was blockeddue to the timeout of the table entry in NAT firewall 110 permitting thetraffic from the IMS server to the gateway. By recording the longestdelay from dummy packet to a successfully transmitted packet from theIMS server to the gateway, the timeout period for the NAT firewall canbe approximated, and a value determined for the maximum period betweendummy packets to maintain the NAT firewall table state. To ensure moredependable or higher accuracy results this NAT firewall timeout test canbe repeated. By gauging the approximate timeout period, the slowest andtherefore most bandwidth efficient refresh rate can be selected forrefresh requests on the wireless network. This NAT firewall timeout testcan be initiated and or directed from either IMS server 112, gateway 104(or 104, 116, and 118) or one or more internet products 102.

Another embodiment is now described. Since the one or more internetproducts 102 are often powered by low-cost battery sources, a designconsideration is the reduction of the internet product's network powerconsumption. Gateway 104 (or 104, 116, and 118), in contrast, is assumedto be powered by external supply and may therefore operate with reducedconsideration to power consumption. This necessitates a network protocolin which the internet product has minimal transmission overhead, whilethe gateway may operate in a less energy optimally fashion in orderminimize internet product energy requirements.

In the embodied radio and network protocol, the internet productsoperate in a decoupled fashion whereby one or more internet products 102do not maintain connection or synchronization information for otherinternet products, including those currently associated with the samegateway. Rather, the connection state is maintained solely in thegateway. The internet product is only periodically required to refreshconnection state within a predefined period of time in order to maintaina current NAT firewall 110 table entry within the gateway.

One embodiment of the invention is providing low-latency, highly energyefficient delivery of data packets. This is done through anenergy-efficient radio and network protocol design (CRP) and efficientcaching of data packets at a gateway's radio. Caching is provided viaqueuing data packets in gateway 104 (or 104, 116, and 118) which aredestined for any currently associated one or more internet products 102currently associated with that gateway. This reduces network powerconsumption by eliminating the requirement to relay data requests to IMSserver 112. In the gateway, data packets are presorted chronologicallyand by internet product identifier in order to optimize packet lookuptime. Data is transferred only when requested by one or more internetproducts 102 via a poll request (described in following sections). Thisreduces network power consumption of the internet product by eliminatingthe requirement to relay each data request separately to the IMS server.In the gateway, data packets are presorted chronologically and byinternet product identifier in order to optimize packet lookup time. Theinternet product may optimally coordinate data transfer with otheractivities as well as optionally batch data transfers in order tominimize power state transition overhead.

Since the one or more internet products 102 are often powered by lowcost battery sources, a paramount design consideration is the reductionin the internet product's network power consumption. Gateway 104 (or104, 116, and 118) in contrast is assumed to be powered by externalsupply and may therefore operate with reduced consideration to powerconsumption. This necessitates a network protocol in which the internetproduct has minimal transmission overhead, while the gateway may operatein a less energy optimally fashion in order minimize internet productenergy requirements. In the embodied radio and network protocol, theinternet products operate in a decoupled fashion whereby one or moreinternet products 102 do not maintain connection or synchronizationinformation for other internet products, including those currentlyassociated with the same gateway. Rather, the connection state ismaintained solely in the gateway. The internet product is onlyperiodically required to refresh connection state within a predefinedperiod of time in order to maintain connection state within the gateway.The connection state is automatically refreshed by the gateway upon anydata packet transmission between the internet product and gateway.Alternatively, the internet product may refresh state via a scanningoperation (described below). This refresh operation may be performed atany energy efficient time selected by the internet product, and istypically coordinated with other operations to minimize power statetransition energy.

An additional embodiment in the invention of the internet product andgateway is the ability of one or more internet products 102 toresynchronize with one or more gateways 104 (or 104, 116, and 118) toprovide a roaming capability. The internet product may initiate a scanfor additional gateways existing in the environment either periodically,or when a reduced received signal strength from the currently associatedgateway is detected. When the scan procedure locates a gateway withadequate signal strength, as described by the scanning process infollowing sections, the internet product will associate with the newgateway by initiating a login process with IMS server 112. Thisindicates to the IMS server that the internet product has roamed to anew gateway and that all future transactions should be routed to thisgateway. The internet product, also called a “handset” in thesedescriptions, remains associated with the former gateway until the IMSserver login has successfully completed. The process creates a novelcapability for one or more internet products to have mobility through acontinuous re-association process with both gateways and the IMS serverconnections.

Another embodiment of the invention is an automatic channel selectionscheme initiated by gateway 104 (or 104, 116, and 118) upon power-on orwhen the active channel noise floor reaches a threshold indicating radiointerference from unknown noise sources. The gateway, whose receiver iscontinuously monitoring the selected communications channel frequency,will monitor the current channel transmission quality. Channel qualityis determined both by the presence of undesirable noise as well asoccupancy by other gateways.

Measurement of undesirable noise is performed by enabling the receiverand periodically sampling the receiver's low noise amplifier receivesignal strength indicator. This signal is proportional to the amount ofpower detected in the radio channel at the selected frequency band. Theperiodic sampling records both the average and peak values over aspecified sampling period. If either peak or average values are measuredto be above predefined constants (this detects both ambient noise andburst transmission interference), then the channel is removed from thecandidate channel list.

To detect occupancy gateway 104 (or 104, 116, and 118) both actively andpassively solicits the presence of other gateways on the candidatefrequency channel. In this mode, the gateway requests a reply from anynearby gateways on the same frequency channel. The gateway then receivesresponses any from responding gateways. At the same time, the channel ispassively monitored for transmissions between any nearby one or moreinternet products 102 and gateways. During the listening period, thetotal number of bytes in all received packets is summed. This value isused to estimate the channel occupancy ratio. If this occupancy ratioexceeds a threshold value, the channel is considered occupied andremoved from the candidate list. Once all channels have been scanned fornoise and occupancy and the undesirable channels removed from thecandidate list as described above, gateway 104 (or 104, 116, and 118)selects the active frequency channel through a uniformly randomselection from the candidate list.

The internet product to gateway CRP 106 is described in the followingsections. FIG. 2 is a functional diagram illustrating the scan 200 frameused as an internet product scan for gateways according to an embodimentof the present invention. Scan 200 is sent once one each hopping channelat initial system synchronization to locate gateways. Scan 200 has amaximum transmit time for initiating one or more internet products 102or gateway 104 (or 104, 116, and 118) of 1.92 ms or for the gateway of2.8 ms. The scanning frame is shown for use with either handset or USBdongle. Scan 200 frame includes Scan ACK packet TX 201 which includes an11 byte header field, a 0-11 byte payload field, and a 2 byte cyclicredundancy check (CRC) field. The header includes a destination addressfield of 4 bytes, a 4 byte source address field, a 1 byte length field,a 1 byte flags field, and a 1 byte sequence number field.

FIG. 3 is a functional diagram illustrating the poll 300 frame used forgateway 104 (or 104, 116, and 118) to one or more internet product 102data transfers according to an embodiment of the present invention. Poll300 has a polling frequency of 1 Hz, and has a maximum transmit time forgateway 104 (or 104, 116, and 118) of 15.52 ms or for the one or moreinternet products 102 of 3.84 ms. The polling frame is shown for usewith either handset or USB dongle. Poll 300 frame includes Data packetTX 301 which includes an 11 byte header field, a 0-147 byte payloadfield, and a 2 byte cyclic redundancy check (CRC) field. The headerincludes a destination address field of 4 bytes, a 4 byte source addressfield, a 1 byte length field, a 1 byte flags field, and a 1 bytesequence number field.

FIG. 4 is a functional diagram illustrating the data 400 frame used forone or more internet products 102 to gateway 104 (or 104, 116, and 118)data transfers according to an embodiment of the present invention. Data400 has no maximum transmit frequency, has a maximum of 2 retries withexponential back off, and has a maximum frame transmit time for one ormore internet products 102 of 13.6 ms or for gateway 104 (or 104, 116,and 118) of 1.92 ms. The data frame is shown for use with either handsetor USB dongle. Data 400 includes Data packet TX 401 which includes an 11byte header field, a 1-147 byte payload field, and a 2 byte cyclicredundancy check (CRC) field. The header includes a destination addressfield of 4 bytes, a 4 byte source address field, a 1 byte length field,a 1 byte flags field, and a 1 byte sequence number field.

An embodiment for multiple data transfers to and from a single gateway104 (or 104, 116, and 118) by one of one or more internet products 102is described next. Each one or more internet products 102 is limited toone data 400 or poll 300 frame transfer attempt per 100 ms. Likewise thegateway will not respond to more than one data or poll request withinany 100 ms time frame. Since each internet product may be activelyassociated with only one gateway, it will not send more than one data orpoll frame in any 100 ms time interval. Since the gateway may beconnected to up to 4 internet products, which are not time synchronized,the gateway will delay responding to any data or poll packets thatarrive within 100 ms of any previous data or poll packet. This isrequired to achieve Federal Communications Commission (FCC) mandatedactivity duty cycling.

For one or more internet products 102 initiated data 400 frames, thedelay is guaranteed by the carrier sense multiple access (CSMA)exponential back-off algorithm,

T _(backoff)=100+rand[0−15]<<retry# ms.

For any successful data 400 or poll 300 frame transfer, there is a 100ms delay on the transmitter lock to prevent any additional frames frombeing transmitted.

FIG. 5 is a functional diagram illustrating the procedure 500 of one ormore internet products 102 scanning to find one or more gateways 104 (or104, 116, and 118) using 16 available channels as an example accordingto an embodiment of the present invention. The internet product performsa scan for all gateways after user login and when the user selects‘Reconnect’ from the menu options. This can also automatically beperformed upon loss of connection or when receive signal strengthindicates poor connectivity to the currently associated gateway. Thescan for gateways is performed by sending scan frames sequentially oneach available channel. The scan 200 frames are separated by a 20 msback-off period. The maximum total transmit time from any internetproduct in a 100 ms period would be,

ceil(100/(20+1.92))*1.92 ms=9.6 ms.

FIG. 6 is a functional diagram illustrating the procedure 600 of pollingwhen one of the one or more internet products 102 is in sleep mode andconnected to gateway 104 (or 104, 116, and 118) whereby the internetproduct will send a single poll 300 frame once per second according toan embodiment of the present invention. Poll 300 frames are sent to theassociated gateway. There are no retries for any lost sub-frame elementsin the poll frame. Lost data will be resent in the following poll frameoccurring 1 second later. The maximum transmission time for any internetproduct in sleep mode during a 100 ms interval will be a single pollframe (3.84 ms).

FIG. 7 is a functional diagram illustrating the procedure 700 of pollingand scanning when the internet product is in sleep mode and notconnected to the gateway according to an embodiment of the presentinvention. When one or more internet products 102 is in sleep mode andnot connected to gateway 104 (or 104, 116, and 118) or if the connectionto the associated gateway is lost during sleep, the internet productwill perform a new gateway scan 300 (see procedure 500 embodiment ofinternet product scan for gateways above) once every 30 seconds insteadof performing the normal poll 300 frame transmission. The internetproduct maximum transmission time in any 100 ms interval will be themaximum of the poll frame transmission and the scan for gateways givenby,

MAX(3.84,9.6)=9.6 ms.

In one embodiment for the internet product in normal operation there areboth poll 300 frames transmitted once per second as well as data 400frames transmitted only when the internet product user initiates someaction through a key press. The two frame types are asynchronous to oneanother with the restriction that only one data or poll frame may besent in any 100 ms time interval. FIG. 8 is a functional diagramillustrating the procedure of data 400 frame transmitting with retries800 during normal operation according to an embodiment of the presentinvention. The retry interval is given by the previously definedexponential random back-off calculation. FIG. 9 is a functional diagramillustrating the procedure 900 of poll 300 and data 400 frametransmitting when the poll frame is held during normal operationaccording to an embodiment of the present invention. When a data frameoccurs within 100 ms of a scheduled poll frame transmission time, thepoll frame is held until the 100 ms delay occurs. The maximumtransmission time in any 100 ms interval will be the maximum of a singlepoll or data frame given by,

MAX(3.84,13.6)=13.6 ms.

FIG. 10 is a functional diagram illustrating the procedure 1000 of scan200 frame transmitting when the gateway is powered on and selects arandom channel according to an embodiment of the present invention. Whengateway 104 (or 104, 116, and 118) is powered on, it selects a randomchannel i (where i is in the range 1 to 16 in this example). The gatewaythen sends a single scan 200 frame to test for existing gateways on thecurrent channel. Gateway then receives for 1 second to determine if thereceived signal strength indication (RSSI) reading indicates too muchnoise on the channel, which indicates potential interference from otherradiators. If no interference is found, the gateway will send anadditional scan frame to probe for existing gateways. If no othergateways are found, the gateway proceeds to the operational mode. If thechannel is occupied by another gateway, or if there is interference fromother radiators on the current channel i, the internet product willselect a new random channel j between 1 and 16 and repeat the describedchannel probing process. The maximum transmit time for a gateway duringany 100 ms interval during startup will be a single scan frame (1.92ms).

FIG. 11 is a functional diagram illustrating the procedure 1100 of data400 and poll 300 frame transmitting during normal gateway 104 (or 104,116, and 118) operation according to an embodiment of the presentinvention. In this embodiment, the gateway has no sleep or standby modesas detailed for the internet product. Likewise the gateway does notinitiate transmissions to any handset other than in the gateway's poweron stage described above. Transmission time is limited at the gateway byservicing only a single data 400 or poll 300 frame in any 100 msinterval. If a data or poll frame arrives from another internet productwithin 100 ms of servicing any current poll frame, the response isdelayed until the 100 ms wait has transpired. The maximum transmissiontime in any 100 ms interval will be the maximum of a single data or pollframe given by,

MAX(1.92,13.6)=13.6 ms.

FIG. 12 is a functional diagram illustrating the procedure 1200 of data400 and poll 300 frame transmitting when a second internet product poll300 is delayed by a first internet product poll 300 frame during normalgateway operation according to an embodiment of the present invention.If any poll or data 400 frame arrives at the gateway within 100 ms ofthe previous poll or data frame, the gateway will delay the ACK responsepacket until the 100 ms delay has occurred.

FIG. 13 is a functional diagram illustrating the previously describedIMS on UDP on IP packet 108, 114, 120, or 126 structures according to anembodiment 1300 of the present invention. The previously described CRP106 packet (13-160 bytes) is loaded on a UDP packet as a UDP payload.The UDP packet further has a 4 byte UDP header and may have an added 20byte IMS header. The UDP packet is then loaded as an IP packet payload.The IP packet also has a 20 byte header. The total IMS packet is then57-204 bytes long and substantially smaller than the maximum standardweb service UDP packet length of 65,507 bytes. The practical limit forother embodiments of an IMS packet length is estimated to be less than500 bytes.

FIG. 14 is an operational flowchart illustrating process steps performedby software functions in accordance with detecting one or more internetproducts 102 by the internet product system 100 and a subsequentaccessing or communication dialog between web application server 122 andone or more internet products 102 in an internet product system 100according to an embodiment 1400 of the present invention. In thisembodiment description one or more internet products 102 and gateway 104(or 104, 116, and 118) are combined into one or more electronic devices((102, 106, and 104) or (102, 106, 104, 116 and 118)), as would beobvious to one of average skill in the art, to more easily teach theconcepts of the invention. It should be noted that, as previouslydescribed in detail, the internet product may communicate in CRP withinthe electronic device which in turn communicates in IMS protocol atother connection points (108, 114, 120, or 126) within wireless internetproduct system 100. Neither the internet product nor the electronicdevice communicates directly in web service protocol 128 (XML/HTTP forexample). Instead, both the internet product and the electronic devicerely on the rest of the invention to provide translation and mapping ofthe simpler CRP and IMS protocols into web service compatible protocolas outlined below. Also, to more easily convey the concepts of theinvention, IMS server 112 and translation server 124 are singly combinedinto a proxy server (112 and 124).

At the start 1410, a dynamic IP address and port is allocated 1412 toNAT firewall 110. The electronic device sends 1414 a sign-on message tothe firewall. The NAT firewall attaches 1416 the IP address and port tothe sign-on message and forwards the combined sign-on message to theproxy server. The proxy server sends 1418 a NAT firewall traversalinformation to the firewall. The NAT firewall forwards 1420 thetraversal information to the electronic device. The electronic devicesends 1422 a unique identifier to the firewall. The NAT firewallforwards 1424 the unique identifier to the proxy server. This completesthe detection phase of the procedure. The proxy server creates 1426 amapping between the unique identifier and the IP address and port. Theproxy server stores 1428 the mapping for later translation enablinginternet product system 100 to use the unique identifier as an addressthroughout the system. The internet product's unique identifier isrecognizable even when an internet product's IP address changes forinstance if a product is moved from one gateway environment to anotheror from one NAT firewall to another.

The next phase of the flow chart embodiment 1400 in FIG. 14 shows howweb application server 122 accesses the electronic device (and one ormore internet products 102 within) in an access or communication dialog.Web application server 122 sends 1430 an web service protocol 128(XML/HTTP) request to proxy server (112 and 124) using the uniqueidentifier as an address for one of the one or more electronic devices102 (or one or more internet products 102 within). The proxy servertranslates 1432 the web service protocol 128 XML/HTTP request to an IMSprotocol 108 request. Proxy server (112 and 124) maps 1434 the uniqueidentifier address used by the web application server to the previouslystored corresponding IP address and port of NAT firewall 110. The proxyserver sends 1436 the translated IMS request to NAT firewall 110. TheNAT firewall sends 1438 the IMS request to one of the one or moreelectronic devices 102. The electronic device (internet product)performs 1440 the request and then sends an IMS protocol 114 or 120response to the firewall. The NAT firewall sends 1442 IMS protocol 108response to proxy server 112 and 124. The proxy server translates 1444the IMS response to web service protocol 128 XML/HTTP response. Theproxy server sends 1446 the translated web service protocol XML/HTTPresponse to web application server 122 completing the accessing orcommunication dialog phase which ends the entire sequence of steps 1448of the flow chart embodiment 1400.

Various embodiments using the wireless internet product system 100 aredescribed next. One of these various embodiments of the invention is aninternet drawing pad that can be made as a toy for children to createand share drawings and messages over the internet, or as a communicationdevice for adults to send drawings and messages over the internet. Oneor more internet products 102 are made up of a touch screen display, amicrocontroller and the previously described low-power wireless radio.The user of the drawing pad would use her finger tip or a stylus tocreate drawings and or pictures on the touch-sensitive screen known tothose skilled in the art. The location of the pressed stylus or figureis recorded on touch-sensitive sensor layers that overlay the screen.The microcontroller converts the signals from the touch interface tovertical and horizontal coordinates using standard touch screen sensormethods known to those in the art. The horizontal and vertical pixelscorresponding to the locations of the pressed screen are then recordedin the writable memory available to the microcontroller and a bit map ofthe drawing or message is stored in the memory of the drawing pad. Theuser of the internet drawing pad can then choose to send the drawing toone of several locations where the drawing or message can be viewed. Inall cases the message or drawing is sent through wireless internetproduct system 100.

Drawings or messages can be sent to one or more internet drawing padsthough internet product system 100 described above. One method foraddressing a drawing pad is to have each pad have a unique serial numberassigned to each unit at manufacture. Users can enter the serial numberof other pads to which they wish to send drawings or messages on thedrawing pad or enter the serial numbers on a web applicationconfiguration page associated with the user's drawing pad.

The drawing or message can also be sent to an email gateway where thedrawing or message will be attached to an email message and sent to anemail address. The drawing or message is passed to an email gatewaywhere the drawing or message will be sent to an email address by webapplication server 122 that has both an interface to IMS server 112 viathe IMS protocol and to an email server to send messages over a protocolsuch as simple mail transfer protocol (SMTP). An email gateway is aspecial case of web application server 122 that is connected totranslation server 124 via web service protocol 128 interface and has amail server known to those skilled in the art, for sending and receivingdata via email. This email message will have an embedded or attachedimage of the drawing or message that has been converted to a standardinternet format such as graphics interchange format (GIF) or jointphotographic experts group (JPEG) format.

The drawing or message can be sent to or from a web application whichuses a JAVA® or FLASH® interface to capture a drawing or message made bya user on a web page. The user would make this drawing by drawing withthe mouse in a drawing pad web application and, for example, clicking ona send button which passes a message containing the drawing to the IMSserver. The message is then sent to an internet pad through internetproduct system 100. Additionally, drawing or messages can be sent fromthe internet pad to the web application and displayed to user on awebsite. In one embodiment the website could be a social networkingwebsite such as FACEBOOK® or MYSPACE®. Using the API programminginterface for the social networking site, drawings or messages generatedfrom pads could be displayed on the social networking site. Similarly acontrol could be created to allow the user on the social networking siteto create a drawing or message and send it to an internet pad. Thesocial networking application could directly communicate with IMS server112 using the IMS protocol or the application could use the web serviceinterface available through translation server 124.

The next of these various embodiments of the invention is the embodimentwhere one or more internet products 102 are a digital camera capable oftaking still photos or movies. The camera uses the radio internet system100. On set up, a user can associate one or more buttons on the camerawith email addresses such that, when a photo is taken and an emailbutton is pushed, the image is transferred though gateway 104 (or 104,116, and 118) and IMS server 112 to web application server 122 with anemail interface and sent to the email address corresponding to thatbutton. Pictures or videos can also be passed from the camera to webapplication server 122. Then, using a web service interface, thepictures or videos can be transferred to a photo printing and/or mediafulfillment company, which may create a photo or video product such as aprint or DVD, and send the media product to the customer or anotheraddress the consumer selects. In one embodiment, the home address of theuser is entered on a registration website when the camera is firstpurchased. When the print button is pressed on the camera, thecurrently-selected or displayed photo or photos are printed and mailedto the user's home address automatically. In one embodiment, the photois transferred through the IMS network to an application which transfersthe photo via a web service interface to an album on a photo sharingsite hosted by a web application server.

The next of these various embodiments of the invention is the embodimentwhere one or more internet products 102 is a room or house alarm where amotion sensor on the alarm causes the alarm to send a signal to IMSserver 112 and to web application server 122 which stores the time ofthe alarm trigger on an alarm website. The alarm is one or more internetproducts 102 and is connected to the internet product system 100described above. In one embodiment, the owner of the alarm isautomatically notified via email or short message service (SMS) messageof the trigger. In one embodiment, the alarm, when triggered, takes aphoto of the person or object that triggered the alarm and sends thedigital photo file along with the alarm trigger signal to webapplication server 122 so that the photo can be displayed on the alarmwebsite to help the user looking at the website understand the nature ofthe alarm.

The next of these various embodiments of the invention is the embodimentwhere one or more internet products 102 is a piece of health monitoringequipment such as a blood pressure sensor, blood glucose sensor, pulseoxygen sensor, heart monitor, body temperature sensor, or other medicalor health sensor device referred to hereafter as a “medical sensor”. Themedical sensor has a radio system and is connected as an internetproduct to wireless internet product system 100 described above. When auser uses the medical sensor to make a measurement, the measurement datais sent through internet product system 100 to web application server122. The application server can then send the information to a webapplication that stores the medical data and presents it to the user, acare provider, or a family member through a secure web page hosted bythe web application server.

The next of these various embodiments of the invention is the embodimentwhere one or more internet products 102 is a piece of exercise or weighttraining equipment such as a treadmill, elliptical trainer, stationarybike, weight training machine, or other exercise device referred tohereafter as “exercise equipment”. The exercise equipment is one or moreinternet product 102 and therefore has a radio system and is connectedto wireless internet product system 100 described above. When a useruses the exercise equipment, exercise data such as time spentexercising, calories burned, miles covered, difficulty settings, pace,and other relevant exercise information is sent through internet productsystem 100 to translation server 124 which then sends the information onto a web application on web application server 122 that stores theexercise data and presents it to the user or the users trainer through aweb page. The exercise web page can also be used to design exerciseprograms that can then be sent through the internet product system 100to the exercise equipment. Exercise programs can contain informationsuch as the duration of the session, difficulty settings, changingprofiles of difficulty and pace over the time of the workout, and otherrelevant parameters. If the exercise equipment is used by more than oneperson, the user would authenticate when she first starts using theexercise equipment by entering a pin number, swiping a magnetic card,using a radio frequency identification (RFID) device, inserting a USBdevice that contains authentication, or by using some otherauthentication method known in the art. Once the user is authenticated,the current exercise program is downloaded or a pre-downloaded exerciseprogram is loaded for the user. Also, exercise data can be uploaded andassociated with the correct user after authentication has taken place.

The next of these various embodiments of the invention is the embodimentwhere one or more internet product 102 is a thermostat for residentialor commercial buildings. The thermostat installs as a standardprogrammable thermostat and replaces the user's existing thermostat ifone is present. The thermostat is one or more internet product 102 andtherefore has the radio described above, and is connected to wirelessinternet product system 100. In one embodiment of the thermostat, theuser registers the thermostat on a product registration website,entering in key characteristic data for the house or commercial buildingthat the thermostat is to control. For example, such data could be thetype, age and model numbers of the heater and air conditioner for thebuilding, the input capacity of the heater and air conditioner, the zipcode for the building location, the age of the building and the HVACsystem, the efficiency of the heater and air conditioner, the squarefootage or cubic footage of the building, the type of construction, thenumber of windows, and/or any other data relevant to the heating orcooling of the building. At registration, the user also chooses ausername and a password which set up a thermostat web applicationaccount.

Web application server 122 delivers web pages to the user which provideinformation and statistics gathered from the thermostat and allow theuser to control thermostat settings such as the standard settings for a7-day programmable thermostat, known in the art. The thermostat webapplication sends data to and collects data from the thermostat throughweb service protocol 128 interface on translation server 124.

The web application is connected to internet data sources for weatherinformation based on zip code, and sends outside temperature and weatherforecast information, including cloud cover, rain, high and lowtemperatures for the day to the thermostat to the thermostat fordisplay.

All thermostat settings and thermostat temperature and time programsettings can be controlled though the web interface, allowing control ofthe thermostat from any internet enabled computer or device with a webbrowser and an internet connection.

The thermostat can also be controlled by a utility company or otherauthorized third party using the web service interface on theapplication server or web application server 122. Example uses includeturning off the heater or air conditioner or temporarily change thethermostat setting to reduce the energy demands the heating ventilationair conditioning (HVAC) system is imposing on the utility company'senergy infrastructure. The thermostat and thermostat web site candisplay if the user is enrolled in this energy demand response systemand whether the system is actively limiting HVAC energy usage. Thethermostat and thermostat website can also provide information on thebonus accumulated by the user for her participation in the demandresponse system.

To determine the efficiency of the house, an estimate of the insulatingefficiency of the house can be determined by raising the temperature ofthe house above the outside air temperature. The outside air temperaturecan be estimated since the user entered her city or zip code for thehouse when the thermostat was registered on the web page. Thetemperature for the zip code or city is obtain through web serviceinterfaces known to those in the art, and then is sent from thethermostat web application server 122 to the thermostat through thewireless internet product system 100. Once the temperature is above theestimated outside air temperature, the heater is turned off and thedecay of the inside temperature is measured. Using the square footagemeasurement and other structure data entered by the user, and the rateof loss of heat as compared the size and characteristics of thestructure, an estimate of heating or cooling loss can be recorded andpresented to the user to provide information about how efficient thestructure is.

The thermostat system also records how changes in the inside temperaturesetting selected on the thermostat affect the number of minutes per daythat the heater or air conditioner must run to keep the structure at theset temperature. Once the number of minutes the heater must run isknown, estimates of the cost of gas or electricity can obtained fromregional averages or from pricing data from the users utility. In somecases the pricing data will be automatically obtained from governmentutility, or third party provider servers though the web serviceinterface. Using the input energy capacity estimate, the total time theheater or air conditioner operated, and the cost of energy such as gasor electricity purchased from the user's utility company, a total costestimate to heat and cool the structure can be obtained. Note that ifthe user's utility uses time of day pricing to compute the energy bill,the internet thermostat system will also record the time of day of eachheating or cooling cycle in order to compute to total cost correctly.

The thermostat web application can also collect temperature history andtemperature projections for the zip code, city, or address the userenters at registration time.

The internet thermostat system combines the structure data andtemperature history to determine the estimated cost for heating andcooling the house in the future for a given set of temperature settingsand program times. This allows the user to make “what-if” changes to hertemperature settings and or thermostat program to see the estimated costor savings of such a change over a time period of her choosing, forexample one year. This estimate can be computed by the internetthermostat system in real time and displayed both on the thermostatwebsite and on the display of the thermostat itself.

As the user changes the thermostat setting or changes the thermostatprogram, the thermostat calculates and totals the cost expense for thenext day, week, month and year and presents them the user to help herevaluate the cost associated with energy choices. The difference in costfrom the previous thermostat setting is also presented to help the userunderstand a cost or benefit projection due to her change in thethermostat temperature setting or thermostat program.

The next of these various embodiments of the invention is a smallinternet information display device which consists of a low-cost displaycontaining the radio system, a microcontroller, an LCD controller, anddriver hardware and software for controlling the display and processinginput familiar to those skilled in the art. The internet informationdevice is one or more internet product 102 and connects to wirelessinternet product system 100 described above. Information such as currentand forecasted weather, stock and index prices, traffic maps withcongestion illustrations, and/or movie ratings and times are gathered bya web application and sent to the application server to be distributedto the internet information display device.

In one embodiment of the internet information display device, the userregisters the device on a product registration website entering in thekey data characteristics for the use of the device such as the user'szip code, work commute destination, email server settings, account andlogin information for social networking sites such as FACEBOOK®, andinstant messaging service such as AIM®, YAHOO® INSTANT MESSENGER® orMICROSOFT® MESSENGER®, etc. At registration the user also chooses ausername and a password, which sets up a website account on webapplication server 122. The web application server hosts web pages thatthe user uses to change which information will be downloaded anddisplayed on his internet information display device.

The information device will then display the information types selectedby the user on the display. In one embodiment, this information isconstantly displayed on the screen. If there is more information thanone screen can display, the device will display each screen for shortperiod of time before changing to the next screen of information,freeing the user from having to touch buttons on the display to retrieveinformation. This makes the information display useful if the user looksat it from a distance, as no buttons will need to be pressed, whichimproves ease of use for the device.

In one embodiment, the user enters on the website associated with thedisplay device, various alternative routes used in his commute. The webapplication uses web service interfaces to other web servers and webapplications to get an estimated trip time for each possible route,factoring in the effects of current traffic congestion along with anoptional shortest-time-route that may or may not have been entered bythe user. The travel time for these routes is computed by the webapplication using the normal methods familiar to those in the art, andthe travel times are transmitted through wireless internet productsystem 100 described above and displayed on the internet informationdevice. The user can quickly glance at the device and see the currenttravel times for different routes to one or more chosen locations andpick the quickest route based on current conditions. To make the deviceuseful for locations that are not preselected by the user, a map of themajor roads and freeways indicating real-time congestion levels can alsobe displayed on the information device. The user's zip code and otherlocation information are used to determine which maps should be sent tothe information display device.

In one embodiment, web application server 122 queries the instantmessaging and social networking sites using the account informationprovided by the user on the internet information device configurationweb page. The web application then collects information from the instantmessaging service such as which friends are currently online and sendsthis information to the internet display device to be displayed. Theadvantage the device provides is that the user only needs to lookbriefly at this device to determine if friends are online and ready tocommunicate instead of using a computer, personal digital assistant(PDA), or other multi-purpose device the requires more operationaloverhead.

In one embodiment, applications are written for a social networking sitesuch as FACEBOOK® so that messages can be written from a user's homepage on the social networking site and then passed to web applicationserver 122 to be displayed on the user's internet information device.

In one embodiment, the internet display device is used as a client for amicro-blogging service such as TWITTER®. The web application server 122or web application uses the web service API to send and receive messagesbetween the micro blogging service and the web application server or webapplication. The web application server provides a configuration webpage for the user to select micro bloggers and/or automated informationpostings such as weather and stock information that will then beautomatically sent from the micro blogging server to the web applicationserver which implements the micro blogging service API to send andreceive messages. The messages are then transmitted to the internetinformation display device through wireless internet product system 100.

In one embodiment, web application server 122 queries the user's emailsystem using the account information provided by the user on theinternet device configuration web page. The web application thencollects email subject, sender, and partial first email body text fromthe user's email service and sends this information to the internetinformation display device to be displayed. The advantage of using theinternet device for this purpose as opposed to a full email client isthat the user only needs to look briefly at this device to determine ifan important email has arrived and he needs to start his computer todeal with it.

In one embodiment, the internet display device web application server122 takes information feeds such as an really simple syndication (RSS)feed and/or updates on friends' pages on a social networking site, sendsthis information through internet product system 100, and displays thenews feed information on the LCD display.

The next of these various embodiments of the invention is the embodimentwhere one or more internet product 102 is an animatronic toy such as atoy robot, animatronic character, or animatronic pet such as a dog, cat,or other animal. The animatronic toy has motor controls to move orgesture and may also have the ability to make sounds or play soundfiles. Some of these toys will have the ability to play sound files suchas stories and coordinate animatronic movements to create the illusionthat the animatronic toy is a talking, as the toy moves and changesexpression though animatronic movements of eyes, mouth, eye brows, ears,head, tail, hands and/or feet. The animatronic toy is an one or moreinternet product 102, has the radio previously described above, and isconnected to wireless internet product system 100.

A web application hosted on the web application server 122 for theanimatronic toy is created that has the following features. The webapplication has a depiction of the animatronic toy which, in thisembodiment, is built using FLASH®. When the user interacts with theFLASH® depiction, command signals are sent to the animatronic toy whichcause movement, actions, and sounds in response to actions taken by theuser on the web application. As an example, the animatronic toy can beremotely controlled by the user by dragging its hands and feet with themouse, which triggers physical movement of the hands and feet, and otheritems in the animatronic toy.

There are also sensors for sound, light, and position for theanimatronics that allow activity or movement of the animatronic toy tobe sensed and transmitted through the wireless internet product system100 to the web application and trigger changes in the depiction of theanimatronic toy on the web page.

Similarly, web games can be played where, during the game, signals aresent to and received from the animatronic toy to provide information tothe web game and affect the web game outcome. In this way theanimatronic toy becomes an input and output device for the web game. Inone embodiment, the animatronic toy can be used to interact with onlinevirtual words. For example, success in the activities and games in anonline world leads to signals being sent down to the animatronic toy tounlock new capabilities such as the animatronic toy being able to beused to detect a sound in your room, sound an alarm, and sent a signalthat will be recorded by the web application.

In one embodiment, the animatronic toy senses that it is being playedwith through accelerometer sensors, motion sensors, sound sensors, andproximity sensors, and sends this activity information to the web gameor virtual world, where the user is rewarded for the play time withonline bonuses. Bonus can be used as online currency to purchase virtualitems, virtual real-estate, or abilities in the virtual world.

In one embodiment, data from the motion sensors of one animatronic toycan be sent through internet product system 100 to another animatronictoy. When a user moves the motor and sensor-enabled parts on theanimatronic toy, another animatronic toy linked to the first toy movesto mimic the positions of the first toy. Both animatronics toys needonly be connected to internet product system 100. They can be controlledover distance this way with one toy being the controller and the secondtoy being controlled by the movements of the first toy.

The next of these various embodiments of the invention is the embodimentwhere one or more internet product 102 is a handheld or table-top gamesuch as an electronic version of a game TV show, chess, checkers, poker,blackjack, craps or other such games. The game is an internet product100 and therefore includes the radio system described above and isconnected to the wireless internet product system 100 described above.The game allows the user to connect to one or more users with compatibledevices or compatible web applications on web browsers to play a game.The user can select an unknown player of a similar skill level ascomputed by win/lose record, or may select a friend's screen name toindicate what opponent she would like to play against. The game internetproduct system is also connected to a game web application that providesa way for users to play games with other users though any web browsersince the web application provides a JAVA® or FLASH® representation ofthe game that send the same movement and commands as the internetproduct game and therefore any combination of web browser or internetproduct players may play each other.

In one embodiment, when the user creates a high score on the game thehigh score is transmitted to all game devices or a subset of the gamedevices connected to wireless internet product system 100 so that allusers will see the name or initials of a new top player along with theplayer's high score.

In one embodiment new game play content such as questions, topicaltrivia, sports statistics and other fresh content are downloaded to thegames through wireless internet product system 100.

For all the above applications, content can be downloaded from webapplication server 122 to one or more internet product 102 withoutrequiring any intervention from the user as the low power radiosubsystem can remain on and always connected and therefore always readyto receive new content even when the internet product is in the off modesince this off mode does not turn off the radio subsystem. Thisalways-on connection even when the internet product is nominally off ispossible because of the low power requirements of the radio hardware andCRP protocols.

Foregoing descriptions of specific embodiments of the invention havebeen presented for purposes of illustration and description. They arenot intended to be exhaustive or to limit the invention to the preciseforms disclosed. Modifications and variations are possible in light ofthe above teaching. For example, applicant contemplates that presentinvention may be applied for various purposes, such as economizing useand optimizing storage of fossil fuels or other non-fossil energyconservation, as well as bioinformatic/biohazard or other remote sensorapplication for homeland security and defense or anti-terroristsurveillance or control functions.

The embodiments were chosen and described in order to explain theprinciples and the application of the invention, thereby enabling othersskilled in the art to utilize the invention in its various embodimentsand modifications according to the particular purpose contemplated. Thescope of the invention is intended to be defined by the claims appendedhereto and their equivalents.

What is claims is:
 1. A network communication system for communicatingwith software applications through a proxy server and a firewall, thenetwork communication system comprising: an electronic device configuredto transfer a unique identifier (ID) through the firewall using aprotocol capable of passing data through the firewall, the IDcorresponding to the electronic device, wherein a packet length of thedata is shorter than a web service protocol packet length havingcorresponding information content; a router being configured to routethe data between the electronic device and the software applicationsusing the unique ID; and a translator configured to translate theprotocol to and from the web service protocol, the web service protocolbeing used to transmit packets through an internet; wherein the softwareapplications utilize web services.
 2. The network communication systemaccording to claim 1, wherein the protocol is an internet message system(IMS) protocol.
 3. The network communication system according to claim1, wherein the electronic device communicates wirelessly.
 4. The networkcommunication system according to claim 3, wherein the electronic devicecommunicates wirelessly using a compact radio protocol (CRP).
 5. Thenetwork communication system according to claim 1, wherein theelectronic device is a gateway.
 6. The network communication systemaccording to claim 1, wherein the electronic device includes a low powerwireless circuit.
 7. The network communication system according to claim1, further comprising an internet product capable of communicating overthe internet.
 8. The network communication system according to claim 1,wherein the electronic device comprises a dongle configured to couple toa personal computer.
 9. The network communication system according toclaim 1, further comprising a table entry including information enablingthe router to cause the proxy server to transfer the data through thefirewall.
 10. The network communication system according to claim 9,wherein the table entry includes a timeout time which is used to blockthe transfer.
 11. The network communication system according to claim 1,further comprising a state or key value pair message associated with theelectronic device.
 12. The network communication system according toclaim 1, wherein the electronic device is selected from the groupconsisting of: a thermostat, an animatronic toy, a medical sensor, atouch screen a display drawing pad, and a sensor; and wherein theelectronic device is responsive to the data.
 13. The networkcommunication system according to claim 1, further comprising a signalstrength circuit being configured to detect a predetermined reducedsignal strength condition which initiates a resynchronization scan. 14.A method for communicating with software applications through a proxyserver and a firewall, the method comprising: transferring a uniqueidentifier (ID) through the firewall using a protocol capable of passingdata through the firewall, the ID corresponding to an electronic device,wherein a packet length of the data is shorter than a web serviceprotocol packet length of corresponding information content; routing thedata between the electronic device and the software applications usingthe unique ID; and translating the protocol to and from a web serviceprotocol, the web service protocol being used to transmit packetsthrough an internet; wherein the software applications utilize webservices.
 15. The method according to claim 14, wherein the protocol isan internet message system (IMS) protocol.
 16. The method according toclaim 14, further comprising transferring the data received wirelesslyfrom an internet product capable of communicating over the internet. 17.The method according to claim 16, wherein the transferring transfers thedata wirelessly using a compact radio protocol (CRP).
 18. The methodaccording to claim 14, further comprising providing a state or key valuepair message associated with the electronic device.
 19. The methodaccording to claim 14, further comprising transferring data from anelectronic device selected from the group consisting of: thermostat,animatronic toy, a medical sensor, a touch screen display drawing pad,and a sensor; and wherein the electronic device is responsive to thedata.
 20. The method according to claim 14, further comprising providinga table entry including information enabling the routing step to causethe proxy server to transfer the data through the firewall.